#include <stdio.h>
#include <math.h>
#include <string.h>
#define Max 8

short int map(char c){
    if (c<='9'&&c>='0') return c-'0';
    if (c<='f'&&c>='a') return c-'a'+10;
    if (c<='F'&&c>='A') return c-'A'+10;
    return -1;
}

int vaild(char t[]){
    int i;
    for (i=0;i<Max;i++){
        if (t[i]=='\0') break;
        if (map(t[i])<0) return 0;
    }
    return 1;
}

unsigned int htoi(char t[]){
    unsigned int a=0;
    int i=0,n=fmin(strlen(t),Max);
    for (;i<n;i++){
        a+=map(t[i])*pow(16,n-i-1);
    }
    return a;
}

int main(){
    // 进制转换 16->10
    char t[Max];
    printf("(HEX in %d digit)input:",Max);
    scanf("%s",t);
    if (vaild(t)){
        printf("DEC :%u\n",htoi(t));
    }else printf("error number!");
    return 0;
}